{
    "nodes": [
        {
            "Type": "catalog",
            "Name": "Application",
            "Description": "A catalog to maintain application portfolio",
            "Fields": [
                {
                    "Name": "Criticality",
                    "Desc": "Overall application criticality within the organization",
                    "DataType": "List",
                    "listOptions": "High, Medium, Low",
                    "Mandatory": "No"
                },
                {
                    "Name": "Recommendation",
                    "Desc": "Lifecycle recommendation, for the next 3 years",
                    "DataType": "List",
                    "listOptions": "Tolerate,Invest,Migrate,Eliminate",
                    "Mandatory": "No"
                },
                {
                    "Name": "Cost",
                    "Desc": "A cost indicator. in the scale of 1-5",
                    "DataType": "List",
                    "listOptions": "High,Medium,Low",
                    "Mandatory": "No"
                },
                {
                    "Name": "End of Life",
                    "Desc": "The date of the end of support",
                    "DataType": "Date",
                    "Mandatory": "No"
                },
                {
                    "Name": "Business Fit",
                    "Desc": "How the application aligned with business objectives",
                    "DataType": "List",
                    "listOptions": "-2,-1,0,1,2",
                    "Mandatory": "No"
                },
                {
                    "Name": "Technical Fit",
                    "Desc": "How the application aligned with the technology Standards and policies",
                    "DataType": "List",
                    "listOptions": "-2,-1,0,1,2",
                    "Mandatory": "No"
                }
            ]
        },
        {
            "Type": "catalog",
            "Name": "Actor",
            "Description": "List of technology custodians as the techical owners of the applications. In advanced modeling we could have different types of actors. ",
            "Fields": [
                {
                    "Name": "email",
                    "Desc": "Contact email of the actor",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                },
                {
                    "Name": "phone",
                    "Desc": "ContactNumber of the actor",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                }
            ]
        },
        {
            "Type": "relationship",
            "Name": "Actor Owns Application",
            "Description": "Show the technical ownership of the applications",
            "From": "Actor",
            "To": "Application"
        },
        {
            "Type": "catalog",
            "Name": "Location",
            "Description": "The physical site where the technology is deployed, mainly the Datacenter's Name.",
            "Fields": []
        },
        {
            "Type": "relationship",
            "Name": "Application Is Hosted At Location",
            "Description": "Shows the hosting scenario of the application",
            "From": "Application",
            "To": "Location"
        },
        {
            "Type": "catalog",
            "Name": "Server",
            "Description": "Any hardware hosting an application",
            "Fields": [
                {
                    "Name": "Vendor",
                    "Desc": "The supplier of the hardware",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                },
                {
                    "Name": "End of life",
                    "Desc": "The date that the server is not supported anymore",
                    "DataType": "Date",
                    "Mandatory": "Optional"
                },
                {
                    "Name": "IP Address",
                    "Desc": "The IP Addresses assigned to the server",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                }
            ]
        },
        {
            "Type": "relationship",
            "Name": "Application Is Hosted At Server",
            "Description": "A realationship to show the underpining hardware",
            "From": "Application",
            "To": "Server"
        },
        {
            "Type": "relationship",
            "Name": "Server Is Child Of Location",
            "Description": "Its a parent-child composition relationship to shows where the server is physically located",
            "From": "Server",
            "To": "Location"
        },
        {
            "Type": "catalog",
            "Name": "Project",
            "Description": "List of the project",
            "Fields": [
                {
                    "Name": "Start Date",
                    "Desc": "when the project officially kicked off",
                    "DataType": "Date",
                    "Mandatory": "Optional"
                },
                {
                    "Name": "End Date",
                    "Desc": "when the project officially Finished",
                    "DataType": "Date",
                    "Mandatory": "Optional"
                }
            ]
        },
        {
            "Type": "relationship",
            "Name": "Application Impacted By Project",
            "Description": "a relationship to show how applications are impacted by the project; it could be any impact type.",
            "From": "Application",
            "To": "Project"
        },
		{
            "Type": "catalog",
            "Name": "Business Process",
            "Description": "List of the active business processess",
			"Fields": []
        },
		{
            "Type": "catalog",
            "Name": "Department",
            "Description": "List of the devisions/departments",
			"Fields": []
        },
		{
            "Type": "relationship",
            "Name": "Process Is Child Of Process",
            "Description": "a composition relationship to show processes' hierarchy.",
            "From": "Business Process",
            "To": "Business Process"
        },
		{
            "Type": "relationship",
            "Name": "Department Is Child Of Department",
            "Description": "a composition relationship to show departments' hierarchy.",
            "From": "Department",
            "To": "Department"
        },
		{
            "Type": "relationship",
            "Name": "Department Owns Application",
            "Description": "a relationship to show how the departments own the applications, or the operation of each department depends on which applications.",
            "From": "Department",
            "To": "Application"
        },
		{
            "Type": "relationship",
            "Name": "Process Uses Application",
            "Description": "a relationship to show how the processes uses the applications to operate",
            "From": "Business Process",
            "To": "Application"
        },
		{
            "Type": "catalog",
            "Name": "Database",
            "Description": "List of the databases in the organization. A database comes with scehmas, tables, procedures, etc.",
			"Fields": []
		},
		{
            "Type": "relationship",
            "Name": "Application Interfaces Application",
            "Description": "a relationship to show how the applications interface each other.",
            "From": "Application",
            "To": "Application",
			 "Fields": [
                {
                    "Name": "Protocol",
                    "Desc": "the protocol is used to implement the interface",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                },
                {
                    "Name": "Port",
                    "Desc": "The port is used to implement the interface",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                }
            ]
        },
		{
            "Type": "relationship",
            "Name": "Application Interfaces Database",
            "Description": "a relationship to show how the applications interface Databases.",
            "From": "Application",
            "To": "Database",
			 "Fields": [
                {
                    "Name": "Protocol",
                    "Desc": "the protocol is used to implement the interface",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                },
                {
                    "Name": "Port",
                    "Desc": "The port is used to implement the interface",
                    "DataType": "Text",
                    "Mandatory": "Optional"
                }
            ]
        }
    ]
}